1. Field of the Invention
The present invention is directed to a system that allows a user to customize attributes associated with a three-dimensional (3D) surface and, more particularly, to a system that allows a user to provide scripts that are activated during painting to allow attributes associated with a 3D surface, such as geometry height, to be painted.
2. Description of the Related Art
Graphic artists who typically design and paint three-dimensional (3D) models are comfortable with the process of using a painting tool, such as a xe2x80x9cbrush,xe2x80x9d to paint color onto the surface of a model. Because of the ease of use and familiarity of artists with this technique, it is anticipated that artists will want to use the painting metaphor in other input areas than applying color to a surface, such as to change related surface attributes.
What is needed is a way of using xe2x80x9cpaintingxe2x80x9d to input other types of data.
In the past changing attributes related to a surface using 3D paint systems has been done by associating color with the attribute being modified. For example, a gray-scale value is used to denote how rough the surface is where black is perfectly smooth and white is very bumpy. For simple scalar values, this approach was usable but non-intuitive. For more complex multi-channel attributes, the limitations of this approach become evident. A new generation of 3D paint system is now available where attributes other than color are being xe2x80x9cpaintedxe2x80x9d onto the surface. Some examples would be complex surface sculpting or xe2x80x9cpaintingxe2x80x9d the flabbiness of skin and seeing immediate feedback of these actions. Since there are a potentially unlimited number of surface related attributes that artists may wish to modify, it is inevitable that they will come across an attribute that they wish to xe2x80x9cpaintxe2x80x9d that isn""t directly supported by the 3D paint program. To solve this problem, artists have often requested the designers of 3D paint programs to provide a special capability for a particular specialized need. To do this the program designers have hard coded the special capability into the 3D paint program. If the special capability is only required for a single project, this approach can be very expensive and time consuming. This approach can also require the paint program designers to anticipate all the possible uses for the painting technology.
What is needed is a system that will allow a user to paint surface related attributes without requiring that the capability be hard coded into the 3D paint program. In other words, a system is needed that will allow users (and even 3D paint program developers) to use a 3D paint style graphical interface for the application of changes to surface based attributes that were not anticipated by the design of the typical 3D paint program.
It is an object of the present invention to provide a system that will allow a 3D paint program to be customized to use the paint interface for inputting characteristics other than texture.
It is another object of the present invention to provide a system that activates special painting capabilities continuously during the paint strokes by a painting tool.
It is also an object of the present invention to provide a flexible way of making changes to a 3D paint program.
It is a further object of the present invention to provide a user customizable painting interface that allows the user to specify attributes to be painted.
The above objects can be attained by a system that allows a user to specify dynamic three-dimensional (3D) painting using a continuous, loosely-coupled control flow for the painting process. The system attaches user customizable actions to the act of painting on 3D surfaces in a computer based graphics system. The actions can be created independently of the 3D painting architecture. The customizable actions are in""the form of scripts that the user can provide and which are interpreted during painting actions. The scripts allow the user to paint attributes of surfaces or input other data using a paint style graphical user interface that includes tools, such as brushes, and actions such as setting all the attributes associated with the entire surface or a sub-region of the surface with a single value or values.